﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;


namespace ArrayListUse
{
    class Program
    {
        static void Main(string[] args)
        {
            //查找集合中是否含有 abc 元素。
            ArrayList al = new ArrayList() { "aaa", "bbb", "ccc", "abc" };
            int db = al.IndexOf("abc");//返回abc第一次出现的位置
            if (db != -1)
            {
                Console.WriteLine("存在abc");
            }
            else
            {
                Console.WriteLine("不存在abc");
            }

            //将集合中元素下标是偶数的元素添加到另一个集合中。
            ArrayList al2 = new ArrayList() { "aaa", "bbb", "abc", 123, 456, 789 };
            ArrayList al3 = new ArrayList();
            for (int i = 0; i < al2.Count; i = i + 2)
            {
                al3.Add(al2[i]);
            }
            foreach (var v in al3)
            {
                Console.WriteLine(v);
            }

            //在集合中第一个元素的后面任意插入 3 个元素。
            ArrayList al4 = new ArrayList { "aaa", "bbb", "ccc", "abc", 123, 456, 789 };
            ArrayList al5 = new ArrayList() { 1, 2, 3 };
            al4.InsertRange(1, al5);//在第一个元素后添加al5的三个元素
            foreach (var item in al4)
            {
                Console.WriteLine(item);
            }

            //将集合中的元素使用 Sort 方法排序后输出。
            ArrayList al6 = new ArrayList() { 123, 789, 456, 8, 7 };
            al6.Sort();
            foreach (var item in al6)
            {
                Console.WriteLine(item);
            }

            //使用ICompare的方式来排序输出string。
            ArrayList al7 = new ArrayList() { 1, 2, 4, 6, 3 };
            MyTest myTest = new MyTest();//实例化自定义比较器
            al7.Sort(myTest);//比较器引入转化后的数据类型进行比较
            foreach (var item in al7)
            {
                Console.WriteLine(item);
            }
        }
    }
}
